package com.hzy.oms.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 微信订单业务对象 oms_wechat_payment_history
 *
 * @author zengxin
 * @date 2023-10-18
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class WechatPaymentHistoryBo extends BaseEntity {

    /**
     * id
     */
    @NotNull(message = "id不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * payment_id
     */
    @NotBlank(message = "payment_id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String paymentId;

    /**
     * 用户 ID
     */
    @NotNull(message = "用户 ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long memberId;

    /**
     * OPENID
     */
    @NotBlank(message = "OPENID不能为空", groups = { AddGroup.class, EditGroup.class })
    private String openid;

    /**
     * 真实姓名，提现需要
     */
    @NotBlank(message = "真实姓名，提现需要不能为空", groups = { AddGroup.class, EditGroup.class })
    private String realName;

    /**
     * 标题|商品名称
     */
    @NotBlank(message = "标题|商品名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String title;

    /**
     * 订单号 支付时是payId 其他为orderId
     */
    @NotNull(message = "订单号 支付时是payId 其他为orderId不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long orderId;

    /**
     * 金额，单位分
     */
    @NotNull(message = "金额，单位分不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal money;

    /**
     * 交易类型（1为支付  2为提现  3为退款）
     */
    @NotNull(message = "交易类型（1为支付  2为提现  3为退款）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer opType;

    /**
     * 状态（0：未完成交易   1：完成关键交易）
     */
    @NotNull(message = "状态（0：未完成交易   1：完成关键交易）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer paymentStatus;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    /**
     * 附加数据
     */
    @NotBlank(message = "附加数据不能为空", groups = { AddGroup.class, EditGroup.class })
    private String attach;

    /**
     * 响应内容
     */
    @NotBlank(message = "响应内容不能为空", groups = { AddGroup.class, EditGroup.class })
    private String responseBody;


}
